
//第一种，实现一个继承于Thread并实现其Run方法的线程子类
class Mythread1 extends Thread{
    @Override
    public void run() {
        System.out.println("创建线程的方式1");
        while(true);
    }
}

//第二种，实现一个类，实现接口Runable,重写Runable内的Run方法
class Mythread2 implements Runnable{
    @Override
    public void run() {
        System.out.println("创建线程的方式2");
        while(true);
    }
}




public class AllConstructor {
    public static void main(String[] args) {
        //第三种在第一种的基础上使用匿名内部类的方式创建新线程
        Thread Mythread3=new Thread(){
            @Override
            public void run() {
                System.out.println("这是创建新线程的方式3");
                while(true);
            }
        };

        //第四种，用传入Runable匿名内部类对象，的方式创建线程
        Thread Mythread4=new Thread(new Thread(){
            @Override
            public void run() {
                System.out.println("这是创建新线程的方式4");
                while(true);
            }
        });

        //第五种。使用lambda表达式创建线程
        Thread Mythread5=new Thread(()->{
            System.out.println("这是创建线程的方式5");
            while(true);
        });



        Mythread1 mythread1=new Mythread1();
        Thread mythread2=new Thread(new Mythread2());
        mythread1.start();
        mythread2.start();
        Mythread3.start();
        Mythread4.start();
        Mythread5.start();
    }
}
